Technological advances in computing systems have been directed toward increasing the commonality of data thus enabling sharing, compatibility and interoperability between machines. For example, as is well known, frequently, a user may have data on one device and desire to share the data with a different device and/or application. Today, so long as the systems are pre-configured to accept specific data formats and types, computers can share data between applications and users. However, these conventional systems are not extensible. In other words, if the correct schema is not available on the destination device, the data cannot be transferred. As well, in order to maintain free data exchange, a user cannot add or modify types at an origination location (e.g., server) without the same additions and/or modifications being installed at the destination location (e.g., client). In other words, the destination location must be equipped (e.g., maintain necessary schema information) to accept incoming data from a disparate device and/or application.
Developments in computing systems have been directed to employing a platform that utilizes the benefits of database technology. Oftentimes, these developments incorporate these benefits into the file system. However, these systems share the same schema compatibility issues described above. As such, in order to effectively transfer and share data, the data in, the file system must conform to a predefined common schema(s). Of course, a schema can be defined as a declarative way of describing the form (e.g., structure) of the data.
In emerging file systems, objects can be stored in the database (e.g., file system) and, accordingly, can be described by an applicable schema. Other scenarios exist whereby an applicable schema can describe documents. For instance, XML schema not stored in a database but read for a regular file system could employ the novel functionality of schema transfer described herein.
Data in these file systems is an instance of specific schemas and types; the types are defined in the schema and define the shape (e.g., structure) of the data. If a new type is desired to be added to the system, e.g., a new set of objects or a new form of data the system can work with, the developer would need to create a schema and a type within it. Next, properties would be added to the type.
A number of scenarios exist in which data has to be saved to a file system store (or other database) for which the required schema(s)/type(s) are not already installed. This is known as the “store down-level” problem. In conventional systems, only system administrators and/or persons with specialized authorizations could install schema information.
What is needed is a system that enables uninhibited transfer of data from one machine to another while enabling that, whenever the data arrives at the second machine, the metadata that is needed with regard to the data is already present at the second machine. Additionally, there exists a substantial need in the art to transfer schema information between components while maintaining a variety of security aspects regarding the schema information including authenticity and integrity.